const app = getApp()

Page({
  data: {
    elderlyModeEnabled: false,
    deepThinkingEnabled: false,
    availableModels: [],
    enabledModelIds: []
  },

  onLoad() {
    this.updateData()
  },
  
  onShow() {
    this.updateData()
  },
  
  // 更新页面数据
  updateData() {
    const globalData = app.globalData
    
    console.log('更新页面数据，当前启用的模型:', globalData.enabledModelIds);
    
    // 预处理模型数据，添加isEnabled属性
    const processedModels = globalData.availableModels.map(model => {
      return {
        ...model,
        isEnabled: globalData.enabledModelIds.indexOf(model.id) !== -1
      };
    });
    
    this.setData({
      elderlyModeEnabled: globalData.elderlyModeEnabled,
      deepThinkingEnabled: globalData.deepThinkingEnabled,
      availableModels: processedModels,
      enabledModelIds: globalData.enabledModelIds
    })
    
    console.log('页面数据更新完成，处理后的模型:', processedModels);
    console.log('页面数据更新完成，当前启用的模型:', this.data.enabledModelIds);
  },
  
  // 切换适老化模式
  toggleElderlyMode(e) {
    const value = e.detail.value
    app.globalData.elderlyModeEnabled = value
    app.saveSettings()
    
    this.setData({
      elderlyModeEnabled: value
    })
    
    wx.showToast({
      title: value ? '已开启适老化模式' : '已关闭适老化模式',
      icon: 'none',
      duration: 1500
    })
  },
  
  // 切换深度思考模式
  toggleDeepThinking(e) {
    const value = e.detail.value
    app.globalData.deepThinkingEnabled = value
    app.saveSettings()
    
    this.setData({
      deepThinkingEnabled: value
    })
    
    wx.showToast({
      title: value ? '已开启深度思考' : '已关闭深度思考',
      icon: 'none',
      duration: 1500
    })
  },
  
  // 切换模型启用状态
  toggleModelEnabled(e) {
    console.log('toggleModelEnabled 事件:', e);
    console.log('dataset:', e.currentTarget.dataset);
    
    // 从dataset中获取id
    const modelId = e.currentTarget.dataset.id;
    console.log('获取到的modelId:', modelId);
    
    // 如果modelId为undefined，提示错误
    if (!modelId) {
      console.error('无法获取modelId，请检查wxml中的data-id绑定');
      return;
    }
    
    const isChecked = e.detail.value;
    const { enabledModelIds, availableModels } = this.data;
    
    console.log('切换模型状态:', modelId, '当前启用:', enabledModelIds, '新状态:', isChecked);
    
    // 如果是取消选中，且只有一个启用的模型，则不允许取消
    if (!isChecked && enabledModelIds.length === 1 && enabledModelIds.indexOf(modelId) !== -1) {
      wx.showToast({
        title: '至少需要启用一个模型',
        icon: 'none',
        duration: 2000
      });
      
      // 强制更新UI，保持开关状态为开启
      setTimeout(() => {
        this.updateData();
      }, 100);
      
      return;
    }
    
    let newEnabledModelIds = [...enabledModelIds];
    
    if (isChecked) {
      // 如果不在列表中，添加
      if (newEnabledModelIds.indexOf(modelId) === -1) {
        newEnabledModelIds.push(modelId);
      }
    } else {
      // 如果在列表中，移除
      const index = newEnabledModelIds.indexOf(modelId);
      if (index !== -1) {
        newEnabledModelIds.splice(index, 1);
      }
    }
    
    console.log('更新后的启用模型:', newEnabledModelIds);
    
    // 更新全局数据
    app.globalData.enabledModelIds = newEnabledModelIds;
    
    // 保存设置
    app.saveSettings();
    
    // 立即更新当前模型的状态，以提供即时反馈
    const updatedModels = availableModels.map(model => {
      if (model.id === modelId) {
        return { ...model, isEnabled: isChecked };
      }
      return model;
    });
    
    this.setData({
      availableModels: updatedModels
    });
    
    // 延迟完全更新UI，确保数据已保存
    setTimeout(() => {
      this.updateData();
      
      wx.showToast({
        title: isChecked ? '已启用该模型' : '已禁用该模型',
        icon: 'none',
        duration: 1500
      });
    }, 100);
  },
  
  // 清空所有历史
  clearAllHistory() {
    wx.showModal({
      title: '确认清空',
      content: '确定要清空所有会话历史吗？此操作不可恢复！',
      success: (res) => {
        if (res.confirm) {
          app.clearAllHistory()
          
          wx.showToast({
            title: '已清空所有历史',
            icon: 'success',
            duration: 1500
          })
        }
      }
    })
  },
  
  // 显示关于信息
  showAbout() {
    wx.showModal({
      title: '关于应用',
      content: '前有绝景，首先跳跃吧！',
      showCancel: false
    })
  },
  
  // 返回聊天页面
  goBack() {
    wx.navigateBack()
  }
}) 